package com.carb.service;

import com.carb.dto.EmployeeServiceDTO;
import com.carb.dto.MemberConsumptionDTO;
import com.carb.dto.ProjectSalesDTO;
import com.carb.vo.*;
import jakarta.servlet.http.HttpServletResponse;

import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 统计报表 服务类
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-02-11
 */
public interface ReportService {

    TurnoverReportVO getTurnoverStatistics(LocalDate begin, LocalDate end);

    MemberReportVO getMemberStatistics(LocalDate begin, LocalDate end);

    BusinessReportVO getBusinessStatistics(LocalDate begin, LocalDate end);

    List<ProjectSalesDTO> getProjectTop10(LocalDate begin, LocalDate end);

    List<EmployeeServiceDTO> getEmployeeTop10(LocalDate begin, LocalDate end);

    List<MemberConsumptionDTO> getMemberTop10(LocalDate begin, LocalDate end);

    void exportBusinessStatisticsReport(HttpServletResponse response);

    void exportProjectStatisticsReport(HttpServletResponse response, Long id);
}
